<?php

namespace Application\Entity;


use Doctrine\ORM\Mapping as ORM;
use Application\Repository\CompetitionRepository;
/**
 * User
 *
 * @ORM\Entity(repositoryClass="Application\Repository\CompetitionRepository") 
 * @ORM\Table(name="competition")
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="type", type="string")
 * @ORM\DiscriminatorMap( {"competition" = "Application\Entity\Competition","competition_facetoface" = "Application\Entity\CompetitionFacetoface", "competition_personality" = "Application\Entity\CompetitionPersonality",  "competition_user" = "Application\Entity\CompetitionUser"} )
 */
class Competition
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="bigint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    public $id;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=255, nullable=true)
     */
    public $name;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="start_date", type="datetime", nullable=true)
     */
    public $startDate;
    
    /**
     * @var \DateTime
     *
     * @ORM\Column(name="end_date", type="datetime", nullable=false)
     */
    public $end_date;
    
    
    /**
     * @var \Provider
     *
     * @ORM\ManyToOne(targetEntity="Media\Entity\Photo")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="cover_picture_id", referencedColumnName="id")
     * })
     */
    public $coverPicture;
    
    /**
     * @var \Filder
     *
     * @ORM\ManyToOne(targetEntity="Application\Entity\Filter")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="filter_id", referencedColumnName="id")
     * })
     */
    public $filter;
    
    /**
     * @var \
     *
     * @ORM\ManyToOne(targetEntity="Application\Entity\Notification")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="notification_id", referencedColumnName="id")
     * })
     */
    public $notification;
    
    
    /**
     * @var \Provider
     *
     * @ORM\ManyToOne(targetEntity="Application\Entity\User")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="creator_uid", referencedColumnName="uid")
     * })
     */
    public $creator;
    /**
     * @var \DateTime
     *
     * @ORM\Column(name="created_at", type="datetime", nullable=true)
     */
    public $createdAt;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="modified_at", type="datetime", nullable=false)
     */
    public $modifiedAt;

}
